﻿/****************************************
* File description: deugLog.cpp
* Function: 日志打印模块
* CurrentVersion: 1.0.0
* Author: JNN
* Date: 2025-07-01
*  -----
* Copyright by 博坤生物
*****************************************/

#include "debugLog.h"

DebugLog::DebugLog(){

#ifdef Q_OS_ANDROID
    _outRootDir = "/storage/emulated/0/Download/Log/";
#else
    _outRootDir = "./Log/";
#endif

    _thread = new LogThread();
    _thread->start();

}


// 关于 为什么要把类写成单例，而不是把函数全写成static的原因
// static变量的初始化顺序问题
// C++只能保证在同一个文件中声明的static变量的初始化顺序与其变量声明的顺序一致，但是不能保证不同的文件中static

/** @brief 单例访问函数
 */

DebugLog& DebugLog::I(){
    static DebugLog instance;
    return instance;
}


/** @brief 写日志函数，添加当前时间，调用日志线程进行写入
 * @param text 写入
 * @param type 类型，作为输出日志文件的后缀名
 */
void DebugLog::write(QString text, QString type){
    QString currentTime = QDateTime::currentDateTime().toString("HH-mm-ss.zzz");
    _thread->write(currentTime + "  " + text, type);
}
